#include<stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<unistd.h>

int main()
{
    close(1);//关闭stdout
    //打开的文件，文件描述符表1会指向打开的文件
    int fd1=open("test1.txt",O_CREAT|O_WRONLY|O_TRUNC,0666);
    //printf("%s\n","qwertyuiop");
    //在你的代码中，\n 无法刷新缓冲区，核心原因是 stdout 被重定向到文件后，缓冲机制从 “行缓冲” 变成了 “全缓冲”，\n 不再触发自动刷新。
    printf("%s\n","qwertyuiop\n");
    //不强制刷新缓冲区就会导致打印到test2.txt中
    fflush(stdout); 



    int fd2=open("test2.txt",O_CREAT|O_WRONLY|O_TRUNC,0666);
    dup2(fd2,1);
    close(fd2);
    printf("%s\n","abcdef");
    return 0;
}
